use serde::{Deserialize, Serialize};
use std::default::Default;

// 应用配置
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AppConfig {
    // 上次选择的服务器索引
    pub last_server_index: Option<usize>,
    // 是否开机自启
    pub auto_start: bool,
    // 是否自动连接
    pub auto_connect: bool,
    // Socks5端口
    pub socks5_port: u16,
    // HTTP端口
    pub http_port: u16,
    // 暗色模式
    pub dark_mode: bool,
    // 自定义主题颜色
    pub primary_color: (u8, u8, u8),
    pub secondary_color: (u8, u8, u8),
}

impl Default for AppConfig {
    fn default() -> Self {
        Self::new()
    }
}

impl AppConfig {
    pub fn new() -> Self {
        Self {
            dark_mode: true,
            primary_color: (59, 130, 246),   // 蓝色
            secondary_color: (16, 185, 129),  // 绿色
            auto_start: false,
            auto_connect: false,
            socks5_port: 1080,
            http_port: 1081,
            last_server_index: None,
        }
    }
} 